package 动态规划算法;

public class testKnapsack1 {

    public class Solution {
        // 表示物品的价值
        int[] vs = {0, 2, 4, 3, 7};
        // 表示物品的容量
        int[] ws = {0, 2, 3, 5, 5};

        private int ks(int i, int c) {
            int result = 0;
            if (i == 0 || c == 0) {
                // 初始条件
                result = 0;
            } else if (ws[i] > c) {
                // 装不下该珠宝
                result = ks(i - 1, c);
            } else {
                // 可以装下
                int tmp1 = ks(i - 1, c);
                int tmp2 = ks(i - 1, c - ws[i]) + vs[i];
                result = Math.max(tmp1, tmp2);
            }
            return result;
        }

        public void testKnapsack1() {
            // 表示背包容量容量为10
            // 表示的有4个物品可以选择
            int result = ks(4, 10);
            System.out.println(result);
        }
    }
}
